
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.ResultSet;
import java.util.Random;

import persistence.ConexaoMysql;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Marcelo
 */
public class CriaRegistros {

    public static void main(String[] args) {

        final SerializaNota serial = new SerializaNota();
        final Random rdn = new Random(5000);
        //final ConexaoMysql conn = new ConexaoMysql();

        for (int x = 0; x < 1; x++) {
            new Thread() {

                public void run() {
                    ConexaoMysql conn = new ConexaoMysql();
                    conn.conecta();
                    int nroNota = 1;

                    //insere vendedores no banco de dados
                    for (int i = 1; i < 11; i++) {
                        String query = "";
                        int cod = conn.regCount("SELECT MAX(vencod) FROM VENDEDOR");
                        if (cod < 10) {
                            int com1 = rdn.nextInt(11);
                            int com2 = rdn.nextInt(100);
                            query = "INSERT INTO VENDEDOR VALUES(" + i + ",'Vendedor de teste " + i + "'," + com1 + "." + com2 + ",10)";
                            System.out.println(query);
                            conn.sqlExecIns(query);
                        } else {
                            System.out.println("Vendedores já cadastrados");
                            i=11;
                        }
                    }

                    //Insere notas no banco de dados
                    for (int i = 1; i <= 10; i++) {
                        String query = "";
                        nroNota = serial.proxNumNota(conn);
                        int clicod = rdn.nextInt(10000) + 1;
                        int vencod = rdn.nextInt(10) + 1;
                        //Data randomica de 2009 ou 2010
                        int mes = rdn.nextInt(12) + 1;
                        int dia;
                        if (mes == 2) {
                            dia = rdn.nextInt(28) + 1;
                        } else {
                            dia = rdn.nextInt(30) + 1;
                        }
                        int ano = rdn.nextInt(2) + 2009;
                        System.out.println(ano + "-" + mes + "-" + dia);

                        query = "INSERT INTO NOTA VALUES(" + nroNota + "," + clicod + ",'cliente de teste'" + "," + vencod + ",000.00,0,0,0,'" + ano + "-" + mes + "-" + dia + "',false)";
                        System.out.println(query);
                        conn.sqlExecIns(query);
                        int qtdItens = rdn.nextInt(15) + 1;
                        for (int j = 0; j <= qtdItens; j++) {
                            int item = conn.regCount("SELECT MAX(item) FROM NOTAITEM WHERE notanro = " + nroNota);
                            item += 1;
                            int proCod = rdn.nextInt(9999);
                            int proQtd = rdn.nextInt(999);
                            double proPreUni = rdn.nextDouble();
                            BigDecimal preUni = new BigDecimal(proPreUni).setScale(2, RoundingMode.HALF_DOWN);
                            BigDecimal proPreTotal = new BigDecimal(proQtd).multiply(preUni);

                            query = "INSERT INTO NOTAITEM VALUES(" + nroNota + "," + item + "," + proCod + "," + '"' + " produto de teste " + proCod + '"'
                                    + "," + proQtd + "," + preUni + "," + proPreTotal + ")";
                            System.out.println(query);
                            conn.sqlExecIns(query);
                        }

                    }

                    System.out.println("Processo concluído! Desconectando do BD.");
                    conn.desconecta();
                }
            }.start();
        }
    }
}
